home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / mkutil21.zip / MAKEDEFS / SC32.MK < prev    next >
Text File  |  1995-02-06  |  5KB  |  174 lines

  1. #############################################################################
  2. #
  3. #                       Copyright (C) 1994 SciTech Software
  4. #                               All rights reserved.
  5. #
  6. # Descripton:   Generic DMAKE startup makefile definitions file. Assumes
  7. #               that the SCITECH environment variable has been set to point
  8. #               to where all our stuff is installed. You should not need
  9. #               to change anything in this file.
  10. #
  11. #               Symantec C++ 6.1 32 bit version. Supports the DOSX extender
  12. #               and Phar Lap's TNT DOS Extender.
  13. #
  14. # $Id: sc32.mk 1.1 1995/02/06 12:49:39 kjb release $
  15. #
  16. #############################################################################
  17.  
  18. # Disable warnings for macros redefined here that were given
  19. # on the command line.
  20. __.SILENT       := $(.SILENT)
  21. .SILENT         := yes
  22.  
  23. # File suffix definitions
  24.    L            := .lib   # Libraries
  25.    E            := .exe   # Executables
  26.    O            := .obj   # Objects
  27.    A            := .asm   # Assembler sources
  28.    P            := .cpp   # C++ sources
  29.  
  30. # Import enivornment variables that we use
  31. TMPDIR := $(ROOTDIR)/tmp
  32. .IMPORT .IGNORE : TMPDIR COMSPEC INCLUDE LIB SCITECH DBG OPT SHW BETA
  33. .IMPORT .IGNORE : USE_TNT USE_X32 USE_X32VM FPU
  34.  
  35. # We use the MSDOS shell at all times
  36.    SHELL        := $(COMSPEC)
  37.    GROUPSHELL   := $(SHELL)
  38.    SHELLFLAGS   := $(SWITCHAR)c
  39.    GROUPFLAGS   := $(SHELLFLAGS)
  40.    SHELLMETAS   := *"?<>
  41.    GROUPSUFFIX  := .bat
  42.    DIRSEPSTR    := \\
  43.    DIVFILE       = $(TMPFILE:s,/,\)
  44.  
  45. # Default commands for compiling, assembling linking and archiving
  46.    CC           := sc       # C-compiler and flags
  47.    CFLAGS       := -Jm
  48.    AS           := tasm     # Assembler and flags
  49.    ASFLAGS      := /mx /m /DES_NOT_DS /D__COMM__ /i$(SCITECH)\INCLUDE
  50.    LD           := sc       # Loader and flags
  51.    LD_FLAGS      =
  52.    LIB          := lib      # Librarian
  53.    LIBFLAGS     := /N /B
  54.  
  55. # Optionally turn on debugging information
  56. .IF $(DBG)
  57.    CFLAGS       += -g       # Turn on debugging for C compiler (FlashView)
  58. .IF $(USE_TNT)
  59.    LDFLAGS      += -fullsym # Turn on debugging for TNT 386link linker
  60. .END
  61. .IF $(USE_X32) or $(USE_X32VM)
  62.    LDFLAGS      += -L/map   # Turn on debugging for FlashView debugger
  63. .END
  64. .END
  65.  
  66. # Optionally turn on optimisations
  67. .IF $(OPT)
  68.    CFLAGS       += -5 -o+all
  69. .END
  70.  
  71. # Optionally turn on direct i387 FPU instructions
  72.  
  73. .IF $(FPU)
  74.    CFLAGS       += -ff -DFPU387
  75.    ASFLAGS      += -DFPU387 -DFPU_REG_RTN
  76. .END
  77.  
  78. # Optionally compile a shareware version of a product
  79. .IF $(SHW)
  80.    LIB_DIR      := LIBSW
  81.    CFLAGS       += -DSHAREWARE
  82. .ELSE
  83.    LIB_DIR      := LIB
  84. .END
  85.  
  86. # Optionally compile a beta release version of a product
  87. .IF $(BETA)
  88.    CFLAGS       += -DBETA
  89.    ASFLAGS      += -DBETA
  90. .END
  91.  
  92. # User a larger stack if requested
  93.  
  94. .IF $(STKSIZE)
  95.     LDFLAGS     += =$(STKSIZE)
  96. .ENDIF
  97.  
  98. .IF $(USE_TNT)                  # Use Phar Lap's TNT DOS Extender
  99.    CFLAGS       += -mp
  100.    DX_CFLAGS    += -DTNT
  101.    ASFLAGS      += /D__FLAT__
  102.    DX_ASFLAGS   += -DTNT
  103.    LD           := 386link
  104.    LDFLAGS      += @sc32.dos -exe $@
  105. .ELIF $(USE_X32VM)              # Use FlashTek X-32VM DOS extender
  106.    CFLAGS       += -mx
  107.    DX_CFLAGS    += -DX32VM
  108.    ASFLAGS      += /D__X386__
  109.    DX_ASFLAGS   += -DX32VM
  110.    LD           := sc
  111.    LDFLAGS      += $(CFLAGS) x32v.lib
  112. .ELIF $(USE_X32)                # Use FlashTek X-32 DOS extender
  113.    CFLAGS       += -mx
  114.    DX_CFLAGS    += -DX32VM
  115.    ASFLAGS      += /D__X386__
  116.    DX_ASFLAGS   += -DX32VM
  117.    LD           := sc
  118.    LDFLAGS      += $(CFLAGS) x32.lib
  119. .ELSE                           # Use default Symantec DOSX extender
  120.    USE_DOSX     := 1
  121.    CFLAGS       += -mx
  122.    DX_CFLAGS    += -DDOSX
  123.    ASFLAGS      += /D__X386__
  124.    DX_ASFLAGS   += -DDOSX
  125.    LD           := sc
  126.    LDFLAGS      += $(CFLAGS)
  127. .END
  128.  
  129. # Place to look for PMODE library files
  130.  
  131. .IF $(MK_PMODE)
  132. .ELIF $(USE_TNT)
  133. PMLIB           := tnt\pmode.lib
  134. .ELIF $(USE_X32)
  135. PMLIB           := x32\pmode.lib
  136. .ELSE
  137. PMLIB           := dosx\pmode.lib
  138. .END
  139.  
  140. # Define where to install library files
  141.    LIB_BASE     := $(SCITECH)\$(LIB_DIR)\SC32
  142.    LIB_DEST     := $(LIB_BASE)
  143.  
  144. # Definition of $(MAKE) macro for recursive makes.
  145.    MAKE = $(MAKECMD) $(MFLAGS)
  146.  
  147. # Macro to install a library file
  148.    INSTALL      := cp
  149.  
  150. # Implicit generation rules for making object files
  151.    %$O: %.c ; +$(CC) $(CFLAGS) -c $<
  152.    %$O: %$P ; +$(CC) $(CFLAGS) -c $<
  153.    %$O: %$A ; +$(AS) $(ASFLAGS) $(<:s,/,\)
  154.  
  155. # Implicit rule for building a library file using response file
  156.    %$L: ; +$(LIB) $(LIBFLAGS) $@ @$(mktmp -+$(?:t" &\n-+")\n)
  157.  
  158. # Implicit rule for building an executable file using response file
  159. .IF $(USE_TNT)
  160.    %$E: ; +$(LD) $(LDFLAGS) @$(mktmp,$*.lnk $(&:s/\/\\) $(PMLIB) $(EXELIBS))
  161. .ELSE
  162.    %$E: ; +$(LD) $(LDFLAGS) -e$@ @$(mktmp,$*.lnk $(&:s/\/\\) $(PMLIB) $(EXELIBS))
  163. .ENDIF
  164.  
  165. # DMAKE uses this recipe to remove intermediate targets
  166. .REMOVE :; $(RM) -f $<
  167.  
  168. # Turn warnings back to previous setting.
  169. .SILENT := $(__.SILENT)
  170.  
  171. # We dont use TABS in our makefiles
  172. .NOTABS         := yes
  173.  
  174.